1. Field of the Invention
This invention relates to computer software, and more particularly to communications protocols between Web services on a network.
2. Description of the Related Art
At the heart of Web services is markup language (e.g. XML)-based messaging. The self-describing, redundant nature of markup language protocols such as XML has significant advantages, but they come at a price of bandwidth and performance. Markup language-based (e.g. XML-based) messages may be larger and require more processing that messages in alternative (typically binary) protocols, such as RMI, RMI/IIOP or CORBA/IIOP. In XML and other markup languages, data may be represented inefficiently, and binding typically requires more computation. For example, a Java RMI (Remote Method Invocation) service may perform an order of magnitude more quickly than an equivalent conventional Web service using XML. Although RMI does not use HTTP, this is not a significant factor for XML-based messages when compared to binding. HTTP becomes a more noteworthy factor when a more efficient format is used, which suggests that alternative transports to increase Web services performance may be desirable.
Increased bandwidth affects wire-based networks as well as wireless-based networks. Often, the latter have more restrictions in terms of bandwidth allotted for communication by a network device. In addition, larger messages increase the possibility of retransmission, while the smaller the message, the less likely it will be corrupted when in the air. Increased processing similarly affects the network devices communicating using the two forms of network (wire-based and wireless). A server may not be able to handle the throughput the network demands of it. Mobile phone battery life may be reduced as the device uses more memory and performs more processing. As the scale of Web service usage increases these problems are likely to be exacerbated.
WSDL
The Web Services Description Language (WSDL) is an XML-based language used to describe the services a business offers and to provide a way for individuals and other businesses to access those services electronically. WSDL is the cornerstone of the Universal Description, Discovery, and Integration (UDDI) initiative spearheaded by Microsoft, IBM, and Ariba. UDDI is an XML-based registry which enables businesses to list themselves and their services on the Internet. WSDL is the language used to do this. The following are some aspects of WSDL:                The abstract, which defines the messages, using W3C XML Schema and the port type, containing operations that state what messages may be sent and received.        The binding, which defines how a port type is bound to a protocol and therefore how the messages are encoded on the wire. Thus, a port type may be bound to many types of protocol and encodings thereof. The most common and widely used binding is the SOAP binding, which defines two forms of literal encoding, meaning that the XML schema is used literally to define XML-based content for the body, headers, and faults of the SOAP protocol. The RPC/literal and document/literal encodings are defined. The former allows for zero or more parameters in a SOAP body message, while the latter only allows for zero or one parameter in a SOAP body message.        The service, which attaches one or more bindings to a network address, which are referred to as a ports.        
FIG. 1 illustrates the general structure of a WSDL Web services stack. A Web services stack may include an application layer 10, a protocol and data binding layer 12, and a transport layer 14.
Data Compression and Web Services
There are problems with using a data compression algorithm to speed up Web services. Even though it is true that, using some compression algorithms, the message size may be reduced (this is especially true for XML data), this does not necessarily translate into better latency or better throughput. Data compression algorithms tend to be very CPU intensive, and this has a direct impact on roundtrip latency. In addition, once the XML data is uncompressed, it must be parsed and possibly bound to an object model. A significant percentage of the latency time is spent in those two steps. Data compression may be useful for some applications (e.g. those sending data over low-bandwidth lines with a per-byte charge), but its applicability to Web services is limited.
JAX-RPC
JAX-RPC (Java API for XML-Based RPC) is an application program interface (API) in the Java Web Services Developer Pack (WSDP) that enables Java developers to include remote procedure calls (RPCs) with Web services or other Web-based applications. JAX-RPC is aimed at making it easier for applications or Web services to call other applications or Web services. JAX-RPC provides a programming model for the development of SOAP (Simple Object Access Protocol)-based applications. The JAX-RPC programming model simplifies development by abstracting SOAP protocol-level runtime mechanisms and providing mapping services between Java and the Web Services Description Language (WSDL).
JAXB
Java Architecture for XML Binding (JAXB) provides a mechanism to bind an XML schema to a representation in Java code. JAXB provides an API and tools that automate the mapping between XML documents and Java objects. This makes it easy for a developer to incorporate XML data and processing functions in applications based on Java technology without having to know much about XML itself. JAXB simplifies access to an XML document from a Java program by presenting the XML document to the program in a Java format.